package de.bk.timecalc.core;

/**
 * Calclates the score for a challenge/answer.
 * 
 * @author Bastian Krol
 * @version $Revision:$ $Date:$ $Author:$
 */
public interface IScoringSchema
{
  /**
   * Calclates the score for a challenge/answer.
   * 
   * @param timerCountsDown
   *          if the time counts down (<code>true</code>) or up (
   *          <code>false</code>)
   * @param correctAnswer
   *          the correct answer
   * @param givenAnswer
   *          the given answer
   * @param duration
   *          the duration needed to give the answer
   * @return the score for this answer
   */
  public float calculateScore(boolean timerCountsDown, TimeDTO correctAnswer, TimeDTO givenAnswer,
      Duration duration);
}
